export interface Message {
  id: string;
  content: string;
  sender: 'user' | 'ai';
  timestamp: Date;
  status: 'sending' | 'sent' | 'failed';
  errorMessage?: string;
  source?: {
    fileName: string;
    fileId: string;
  };
}

export interface Conversation {
  id: string;
  title: string;
  timestamp: Date;
  messages: Message[];
  lastMessage?: string;
}

export interface ChatState {
  conversations: Conversation[];
  activeConversationId: string | null;
  isTyping: boolean;
  searchQuery: string;
}

export interface KnowledgeFile {
  id: string;
  name: string;
  size: number;
  type: string;
  uploadedAt: Date;
  content?: string;
  embeddingStatus?: 'pending' | 'processing' | 'completed' | 'failed';
  lastEmbeddedAt?: Date;
}